package com.ishell.generate.util;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


/**
 * 作者: creazier.huang
 * 日期: 2016/11/4
 * 说明: 文件工具类
 */
public class FileUtil {

    private final static Logger logger = LoggerFactory.getLogger(FileUtil.class);

    /**
     * 向file中写数据
     * @param file
     * @param data
     */
    public static void rewirte(File file, String data){
        try(FileWriter fileWriter = new FileWriter(file)){
            try(BufferedWriter bw = new BufferedWriter(fileWriter)){
                bw.write(data);
            }
        } catch (Exception e) {
            logger.error("创建FileWirte 失败");
        }


    }

    /**
     * 读取数据
     * @param file
     * @return
     */
    public static List<String> readList(File file) {
        List<String> data = new ArrayList<String>();
        try (FileReader fileReader = new FileReader(file); BufferedReader br = new BufferedReader(fileReader);) {
            for(String str = null; (str = br.readLine()) != null; ) {
                data.add(str);
            }
        } catch (IOException e) {
            logger.error("", e);
        }
        return data;
    }

    /**
     *
     * @Descroption 创建文件夹
     * @author liuwuchuang
     * @date 2016年12月16日 下午5:18:39
     *
     * @param path
     * @return
     */
    public static boolean makeDirectory(String path){
        if(StringUtils.isBlank(path)){
            logger.info("path:{}路径为空",path);
            return false;
        }
        File file=new File(path);
        //判断文件夹是否存在
        if(!file.exists()){
            logger.info("文件路径:{}不存在,创建路径",path);
            //创建路径
            boolean isSuccess=file.mkdirs();
            return isSuccess;
        }
        return true;
    }


}
